﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Music
{
    public partial class Create_form : Form
    {
        public Create_form()
        {
            InitializeComponent();
        }

        public Album CFAl = new Album();
        public AbstractTrack AT_temp = new AbstractTrack();
        public TrackWithVocal TWV_temp = new TrackWithVocal();
        public TrackWithoutVocal TWOV_temp = new TrackWithoutVocal();
        public RockTrack RT_temp = new RockTrack();
        public PopTrack PT_temp = new PopTrack();
        public ClassicTrack CT_temp = new ClassicTrack();


        private void Create_form_Load(object sender, EventArgs e)
        {
            comboBox1.Items.Add("Abstract Track");
            comboBox1.Items.Add("Track With Vocal");
            comboBox1.Items.Add("Track Without Vocal");
            comboBox1.Items.Add("Classic Track");
            comboBox1.Items.Add("Rock Track");
            comboBox1.Items.Add("Pop Track");

            comboBox2.Items.Add(0);
            comboBox2.Items.Add(1);
            comboBox2.Items.Add(2);
            comboBox2.Items.Add(3);
            comboBox2.Items.Add(4);

            comboBox3.Items.Add(0);
            comboBox3.Items.Add(1);
            comboBox3.Items.Add(2);
            comboBox3.Items.Add(3);
            comboBox3.Items.Add(4);

            comboBox4.Items.Add(0);
            comboBox4.Items.Add(1);
            comboBox4.Items.Add(2);
            comboBox4.Items.Add(3);
            comboBox4.Items.Add(4);

            textBox1.Enabled = false;
            textBox2.Enabled = false;
            textBox3.Enabled = false;
            textBox4.Enabled = false;
            textBox5.Enabled = false;
            textBox6.Enabled = false;
            comboBox2.Enabled = false;
            comboBox3.Enabled = false;
            comboBox4.Enabled = false;
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (comboBox1.SelectedIndex)
            {
                case 0:
                    textBox1.Enabled = true;
                    textBox2.Enabled = true;
                    textBox3.Enabled = false;
                    textBox4.Enabled = true;
                    textBox5.Enabled = false;
                    textBox6.Enabled = false;
                    comboBox2.Enabled = false;
                    comboBox3.Enabled = false;
                    comboBox4.Enabled = false;
                    break;
                case 1:
                    textBox1.Enabled = true;
                    textBox2.Enabled = true;
                    textBox3.Enabled = false;
                    textBox4.Enabled = true;
                    textBox5.Enabled = true;
                    textBox6.Enabled = false;
                    comboBox2.Enabled = false;
                    comboBox3.Enabled = false;
                    comboBox4.Enabled = false;
                    break;
                case 2:
                    textBox1.Enabled = true;
                    textBox2.Enabled = true;
                    textBox3.Enabled = true;
                    textBox4.Enabled = true;
                    textBox5.Enabled = false;
                    textBox6.Enabled = false;
                    comboBox2.Enabled = false;
                    comboBox3.Enabled = false;
                    comboBox4.Enabled = false;
                    break;
                case 3:
                    textBox1.Enabled = true;
                    textBox2.Enabled = true;
                    textBox3.Enabled = true;
                    textBox4.Enabled = true;
                    textBox5.Enabled = false;
                    textBox6.Enabled = true;
                    comboBox2.Enabled = false;
                    comboBox3.Enabled = false;
                    comboBox4.Enabled = false;
                    break;
                case 4:
                    textBox1.Enabled = true;
                    textBox2.Enabled = true;
                    textBox3.Enabled = false;
                    textBox4.Enabled = true;
                    textBox5.Enabled = true;
                    textBox6.Enabled = false;
                    comboBox2.Enabled = true;
                    comboBox3.Enabled = true;
                    comboBox4.Enabled = false;
                    break;
                case 5:
                    textBox1.Enabled = true;
                    textBox2.Enabled = true;
                    textBox3.Enabled = false;
                    textBox4.Enabled = true;
                    textBox5.Enabled = true;
                    textBox6.Enabled = false;
                    comboBox2.Enabled = false;
                    comboBox3.Enabled = false;
                    comboBox4.Enabled = true;
                    break;
            }

        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (comboBox1.SelectedIndex == -1)
                MessageBox.Show("Выберите тип трека");
            else
            {
                switch (comboBox1.SelectedIndex)
                {
                    case 0:
                        if (textBox1.Text == "")
                        {
                            MessageBox.Show("Введите название трека");
                        }
                        else
                        {
                            if (textBox2.Text == "")
                            {
                                MessageBox.Show("Введите исполнителя");
                            }
                            else
                            {
                                if (textBox4.Text == "")
                                {
                                    MessageBox.Show("Введите год");
                                }
                                else
                                {
                                    if ((Convert.ToInt32(textBox4.Text) < 1800) || (Convert.ToInt32(textBox4.Text) > 2014))
                                    {
                                        MessageBox.Show("Год введен некорректно");
                                    }
                                    else
                                    {
                                        AT_temp.SetMus(textBox2.Text);
                                        AT_temp.SetName(textBox1.Text);
                                        AT_temp.SetYear(Convert.ToInt32(textBox4.Text));

                                        CFAl.Add(AT_temp);
                                        this.Close();
                                        
                                    }
                                    
                                }
                            }
                        }
                        break;
                    case 1:
                        if (textBox1.Text == "")
                        {
                            MessageBox.Show("Введите название трека");
                        }
                        else
                        {
                            if (textBox2.Text == "")
                            {
                                MessageBox.Show("Введите исполнителя");
                            }
                            else
                            {
                                if (textBox4.Text == "")
                                {
                                    MessageBox.Show("Введите год");
                                }
                                else
                                {
                                    if ((Convert.ToInt32(textBox4.Text) < 1800) || (Convert.ToInt32(textBox4.Text) > 2014))
                                    {
                                        MessageBox.Show("Год введен некорректно");
                                    }
                                    else
                                    {
                                        if (textBox5.Text == "")
                                        {
                                            MessageBox.Show("Введите вокалиста");
                                        }
                                        else
                                        {
                                            TWV_temp.SetMus(textBox2.Text);
                                            TWV_temp.SetName(textBox1.Text);
                                            TWV_temp.SetYear(Convert.ToInt32(textBox4.Text));
                                            TWV_temp.SetVoc(textBox5.Text);

                                            CFAl.Add(TWV_temp);
                                            this.Close();
                                        }
                                        
                                    }

                                }
                            }
                        }
                        break;
                    case 2:
                        if (textBox1.Text == "")
                        {
                            MessageBox.Show("Введите название трека");
                        }
                        else
                        {
                            if (textBox2.Text == "")
                            {
                                MessageBox.Show("Введите исполнителя");
                            }
                            else
                            {
                                if (textBox4.Text == "")
                                {
                                    MessageBox.Show("Введите год");
                                }
                                else
                                {
                                    if ((Convert.ToInt32(textBox4.Text) < 1800) || (Convert.ToInt32(textBox4.Text) > 2014))
                                    {
                                        MessageBox.Show("Год введен некорректно");
                                    }
                                    else
                                    {
                                        if (textBox3.Text == "")
                                        {
                                            MessageBox.Show("Введите композитора");
                                        }
                                        else
                                        {
                                            TWOV_temp.SetMus(textBox2.Text);
                                            TWOV_temp.SetName(textBox1.Text);
                                            TWOV_temp.SetYear(Convert.ToInt32(textBox4.Text));
                                            TWOV_temp.SetCom(textBox3.Text);

                                            CFAl.Add(TWOV_temp);
                                            this.Close();
                                        }

                                    }

                                }
                            }
                        }
                        break;
                    case 3:
                        if (textBox1.Text == "")
                        {
                            MessageBox.Show("Введите название трека");
                        }
                        else
                        {
                            if (textBox2.Text == "")
                            {
                                MessageBox.Show("Введите исполнителя");
                            }
                            else
                            {
                                if (textBox4.Text == "")
                                {
                                    MessageBox.Show("Введите год");
                                }
                                else
                                {
                                    if ((Convert.ToInt32(textBox4.Text) < 1800) || (Convert.ToInt32(textBox4.Text) > 2014))
                                    {
                                        MessageBox.Show("Год введен некорректно");
                                    }
                                    else
                                    {
                                        if (textBox3.Text == "")
                                        {
                                            MessageBox.Show("Введите композитора");
                                        }
                                        else
                                        {
                                            if (textBox6.Text == "")
                                            {
                                                MessageBox.Show("Введите название ведущего инструмента");
                                            }
                                            else
                                            {
                                                CT_temp.SetMus(textBox2.Text);
                                                CT_temp.SetName(textBox1.Text);
                                                CT_temp.SetYear(Convert.ToInt32(textBox4.Text));
                                                CT_temp.SetCom(textBox3.Text);
                                                CT_temp.SetMIn(textBox6.Text);

                                                CFAl.Add(CT_temp);
                                                this.Close();
                                            }
                                            
                                        }

                                    }

                                }
                            }
                        }
                        break;
                    case 4:
                        if (textBox1.Text == "")
                        {
                            MessageBox.Show("Введите название трека");
                        }
                        else
                        {
                            if (textBox2.Text == "")
                            {
                                MessageBox.Show("Введите исполнителя");
                            }
                            else
                            {
                                if (textBox4.Text == "")
                                {
                                    MessageBox.Show("Введите год");
                                }
                                else
                                {
                                    if ((Convert.ToInt32(textBox4.Text) < 1800) || (Convert.ToInt32(textBox4.Text) > 2014))
                                    {
                                        MessageBox.Show("Год введен некорректно");
                                    }
                                    else
                                    {
                                        if (textBox5.Text == "")
                                        {
                                            MessageBox.Show("Введите вокалиста");
                                        }
                                        else
                                        {
                                            if (comboBox2.SelectedIndex == -1)
                                            {
                                                MessageBox.Show("Выберите число гитарных партий");
                                            }
                                            else
                                            {
                                                if (comboBox3.SelectedIndex == -1)
                                                {
                                                    MessageBox.Show("Выберите число ударных партий");
                                                }
                                                else
                                                {
                                                    RT_temp.SetMus(textBox2.Text);
                                                    RT_temp.SetName(textBox1.Text);
                                                    RT_temp.SetYear(Convert.ToInt32(textBox4.Text));
                                                    RT_temp.SetVoc(textBox5.Text);
                                                    RT_temp.SetGPQ(Convert.ToInt32(comboBox2.Items[comboBox2.SelectedIndex]));
                                                    RT_temp.SetDPQ(Convert.ToInt32(comboBox3.Items[comboBox2.SelectedIndex]));

                                                    CFAl.Add(RT_temp);
                                                    this.Close();
                                                }
                                            }
                                            
                                        }

                                    }

                                }
                            }
                        }
                        break;
                    case 5:
                        if (textBox1.Text == "")
                        {
                            MessageBox.Show("Введите название трека");
                        }
                        else
                        {
                            if (textBox2.Text == "")
                            {
                                MessageBox.Show("Введите исполнителя");
                            }
                            else
                            {
                                if (textBox4.Text == "")
                                {
                                    MessageBox.Show("Введите год");
                                }
                                else
                                {
                                    if ((Convert.ToInt32(textBox4.Text) < 1800) || (Convert.ToInt32(textBox4.Text) > 2014))
                                    {
                                        MessageBox.Show("Год введен некорректно");
                                    }
                                    else
                                    {
                                        if (textBox5.Text == "")
                                        {
                                            MessageBox.Show("Введите вокалиста");
                                        }
                                        else
                                        {
                                            if (comboBox4.SelectedIndex == -1)
                                            {
                                                MessageBox.Show("Выберите число партий синтезатора");
                                            }
                                            else
                                            {
                                                PT_temp.SetMus(textBox2.Text);
                                                PT_temp.SetName(textBox1.Text);
                                                PT_temp.SetYear(Convert.ToInt32(textBox4.Text));
                                                PT_temp.SetVoc(textBox5.Text);
                                                PT_temp.SetSPQ(Convert.ToInt32(comboBox4.Items[comboBox4.SelectedIndex]));

                                                CFAl.Add(PT_temp);
                                                this.Close();
                                             }
                                          }

                                        }

                                    }

                                }
                        }
                        break;
                }
            }
        }
    }
}
